home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / MOR55SRC.ZIP / MORIA / SOURCE / HELP.C < prev    next >
C/C++ Source or Header  |  1992-12-07  |  6KB  |  149 lines

  1. /* source/help.c: identify a symbol
  2.  
  3.    Copyright (c) 1989-92 James E. Wilson, Robert A. Koeneke
  4.  
  5.    This software may be copied and distributed for educational, research, and
  6.    not for profit purposes provided that this copyright and statement are
  7.    included in all such copies. */
  8.  
  9. #include "config.h"
  10. #include "constant.h"
  11. #include "types.h"
  12. #include "externs.h"
  13.  
  14.  
  15. void ident_char()
  16. {
  17.   char command, query;
  18.   register int i, n;
  19.  
  20.   if (get_com("Enter character to be identified :", &command))
  21.     switch(command)
  22.       {
  23.     /* every printing ASCII character is listed here, in the order in which
  24.        they appear in the ASCII character set */
  25.       case ' ': prt("  - An open pit.", 0, 0); break;
  26.       case '!': prt("! - A potion.", 0, 0); break;
  27.       case '"': prt("\" - An amulet, periapt, or necklace.", 0, 0); break;
  28.       case '#': prt("# - A stone wall.", 0, 0); break;
  29.       case '$': prt("$ - Treasure.", 0, 0); break;
  30.       case '%':
  31.     if (highlight_seams == TRUE)
  32.       prt("% - A magma or quartz vein.", 0, 0);
  33.     else
  34.       prt("% - Not used.", 0, 0);
  35.     break;
  36.       case '&': prt("& - Treasure chest.", 0, 0); break;
  37.       case '\'': prt("' - An open door.", 0, 0); break;
  38.       case '(': prt("( - Soft armor.", 0, 0); break;
  39.       case ')': prt(") - A shield.", 0, 0); break;
  40.       case '*': prt("* - Gems.", 0, 0); break;
  41.       case '+': prt("+ - A closed door.", 0, 0); break;
  42.       case ',': prt(", - Food or mushroom patch.", 0, 0); break;
  43.       case '-': prt("- - A wand", 0, 0); break;
  44.       case '.': prt(". - Floor.", 0, 0); break;
  45.       case '/': prt("/ - A pole weapon.", 0, 0); break;
  46.     /* case '0': prt("0 - Not used.", 0, 0); break; */
  47.       case '1': prt("1 - Entrance to General Store.", 0, 0); break;
  48.       case '2': prt("2 - Entrance to Armory.", 0, 0); break;
  49.       case '3': prt("3 - Entrance to Weaponsmith.", 0, 0); break;
  50.       case '4': prt("4 - Entrance to Temple.", 0, 0); break;
  51.       case '5': prt("5 - Entrance to Alchemy shop.", 0, 0); break;
  52.       case '6': prt("6 - Entrance to Magic-Users store.", 0, 0); break;
  53.     /* case '7': prt("7 - Not used.", 0, 0); break; */
  54.     /* case '8': prt("8 - Not used.", 0, 0); break; */
  55.     /* case '9': prt("9 - Not used.", 0, 0);  break;*/
  56.       case ':': prt(": - Rubble.", 0, 0); break;
  57.       case ';': prt("; - A loose rock.", 0, 0); break;
  58.       case '<': prt("< - An up staircase.", 0, 0); break;
  59.       case '=': prt("= - A ring.", 0, 0); break;
  60.       case '>': prt("> - A down staircase.", 0, 0); break;
  61.       case '?': prt("? - A scroll.", 0, 0); break;
  62.       case '@': prt(py.misc.name, 0, 0); break;
  63.       case 'A': prt("A - Giant Ant Lion.", 0, 0); break;
  64.       case 'B': prt("B - The Balrog.", 0, 0); break;
  65.       case 'C': prt("C - Gelatinous Cube.", 0, 0); break;
  66.       case 'D': prt("D - An Ancient Dragon (Beware).", 0, 0); break;
  67.       case 'E': prt("E - Elemental.", 0, 0); break;
  68.       case 'F': prt("F - Giant Fly.", 0, 0); break;
  69.       case 'G': prt("G - Ghost.", 0, 0); break;
  70.       case 'H': prt("H - Hobgoblin.", 0, 0); break;
  71.     /* case 'I': prt("I - Invisible Stalker.", 0, 0); break; */
  72.       case 'J': prt("J - Jelly.", 0, 0); break;
  73.       case 'K': prt("K - Killer Beetle.", 0, 0); break;
  74.       case 'L': prt("L - Lich.", 0, 0); break;
  75.       case 'M': prt("M - Mummy.", 0, 0); break;
  76.     /* case 'N': prt("N - Not used.", 0, 0); break; */
  77.       case 'O': prt("O - Ooze.", 0, 0); break;
  78.       case 'P': prt("P - Giant humanoid.", 0, 0); break;
  79.       case 'Q': prt("Q - Quylthulg (Pulsing Flesh Mound).", 0, 0); break;
  80.       case 'R': prt("R - Reptile.", 0, 0); break;
  81.       case 'S': prt("S - Giant Scorpion.", 0, 0); break;
  82.       case 'T': prt("T - Troll.", 0, 0); break;
  83.       case 'U': prt("U - Umber Hulk.", 0, 0); break;
  84.       case 'V': prt("V - Vampire.", 0, 0); break;
  85.       case 'W': prt("W - Wight or Wraith.", 0, 0); break;
  86.       case 'X': prt("X - Xorn.", 0, 0); break;
  87.       case 'Y': prt("Y - Yeti.", 0, 0); break;
  88.     /* case 'Z': prt("Z - Not used.", 0, 0); break; */
  89.       case '[': prt("[ - Hard armor.", 0, 0); break;
  90.       case '\\': prt("\\ - A hafted weapon.", 0, 0); break;
  91.       case ']': prt("] - Misc. armor.", 0, 0); break;
  92.       case '^': prt("^ - A trap.", 0, 0); break;
  93.       case '_': prt("_ - A staff.", 0, 0); break;
  94.     /* case '`': prt("` - Not used.", 0, 0); break; */
  95.       case 'a': prt("a - Giant Ant.", 0, 0); break;
  96.       case 'b': prt("b - Giant Bat.", 0, 0); break;
  97.       case 'c': prt("c - Giant Centipede.", 0, 0); break;
  98.       case 'd': prt("d - Dragon.", 0, 0); break;
  99.       case 'e': prt("e - Floating Eye.", 0, 0); break;
  100.       case 'f': prt("f - Giant Frog.", 0, 0); break;
  101.       case 'g': prt("g - Golem.", 0, 0); break;
  102.       case 'h': prt("h - Harpy.", 0, 0); break;
  103.       case 'i': prt("i - Icky Thing.", 0, 0); break;
  104.       case 'j': prt("j - Jackal.", 0, 0); break;
  105.       case 'k': prt("k - Kobold.", 0, 0); break;
  106.       case 'l': prt("l - Giant Louse.", 0, 0); break;
  107.       case 'm': prt("m - Mold.", 0, 0); break;
  108.       case 'n': prt("n - Naga.", 0, 0); break;
  109.       case 'o': prt("o - Orc or Ogre.", 0, 0); break;
  110.       case 'p': prt("p - Person (Humanoid).", 0, 0); break;
  111.       case 'q': prt("q - Quasit.", 0, 0); break;
  112.       case 'r': prt("r - Rodent.", 0, 0); break;
  113.       case 's': prt("s - Skeleton.", 0, 0); break;
  114.       case 't': prt("t - Giant Tick.", 0, 0); break;
  115.     /* case 'u': prt("u - Not used.", 0, 0); break; */
  116.     /* case 'v': prt("v - Not used.", 0, 0); break; */
  117.       case 'w': prt("w - Worm or Worm Mass.", 0, 0); break;
  118.     /* case 'x': prt("x - Not used.", 0, 0); break; */
  119.       case 'y': prt("y - Yeek.", 0, 0); break;
  120.       case 'z': prt("z - Zombie.", 0, 0); break;
  121.       case '{': prt("{ - Arrow, bolt, or bullet.", 0, 0); break;
  122.       case '|': prt("| - A sword or dagger.", 0, 0); break;
  123.       case '}': prt("} - Bow, crossbow, or sling.", 0, 0); break;
  124.       case '~': prt("~ - Miscellaneous item.", 0, 0); break;
  125.       default:    prt("Not Used.", 0, 0); break;
  126.       }
  127.  
  128.   /* Allow access to monster memory. -CJS- */
  129.   n = 0;
  130.   for (i = MAX_CREATURES-1; i >= 0; i--)
  131.     if ((c_list[i].cchar == command) && bool_roff_recall (i))
  132.       {
  133.     if (n == 0)
  134.       {
  135.         put_buffer ("You recall those details? [y/n]", 0, 40);
  136.         query = inkey();
  137.         if (query != 'y' && query != 'Y')
  138.           break;
  139.         erase_line (0, 40);
  140.         save_screen ();
  141.       }
  142.     n++;
  143.     query = roff_recall (i);
  144.     restore_screen ();
  145.     if (query == ESCAPE)
  146.       break;
  147.       }
  148. }
  149.